package cn.yangke.basic.util;

import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;

import javax.mail.internet.MimeMessage;
import java.io.File;

/**
 * @Author YangKe
 * @Date 2022/6/14 10:53
 */
public class MailUtil {

    /**
     * 简单邮件工具类
     * @param javaMailSender 需要注入javaMailSender
     * @param selfMail 你自己的邮箱
     * @param toMail 你要发送的邮箱
     * @param subject 你发送的主题
     * @param text 你发送的文本
     */
    public static void simpleMail(JavaMailSender javaMailSender,String selfMail,String toMail,String subject,String text){
        //新建简单邮件对象
        SimpleMailMessage mailMessage = new SimpleMailMessage();
        //设置发送人
        mailMessage.setFrom(selfMail);
        //邮件主题
        mailMessage.setSubject(subject);
        //邮件内容
        mailMessage.setText(text);
        //收件人
        mailMessage.setTo(toMail);
        //发送邮件
        javaMailSender.send(mailMessage);
    }


    /**
     * 复杂邮件  带附件
     * @param javaMailSender 需要注入javaMailSender
     * @param selfMail 自己的邮箱
     * @param toMail 你要发送的邮箱
     * @param subject 发送的主题
     * @param text 发送的文本
     * @param htmlBoolean 是否是html内容(可以发送连接)
     * @param fileName 附件的文件名
     * @param file 附件
     * @throws Exception
     */
    public static void complexMail(JavaMailSender javaMailSender,String selfMail,String toMail,String subject,String text,Boolean htmlBoolean,String fileName,File file) throws Exception{
        //创建复杂邮件对象
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        //发送复杂邮件的工具类
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true,"utf-8");
        helper.setFrom(selfMail);
        helper.setSubject(subject);
        //第二个参数 true 代表是否是一个html内容
        helper.setText(text,htmlBoolean);
        if (fileName!=null && file!=null) {
            //添加附件
            helper.addAttachment(fileName, file);
        }
        //收件人
        helper.setTo(toMail);
        //发送邮件
        javaMailSender.send(mimeMessage);
    }

}
